#pragma once

#include <unistd.h>
#include <sys/syscall.h>

namespace CurrentThread
{
    //__thread是GCC的线程局部存储(TLS)扩展，用于声明线程特有的全局变量。每个线程都有其自己的变量实例。
    //extern关键字的使用表示t_cachedTid的定义在别的地方，意味着这个变量可以在其他文件中被访问。
    extern __thread int t_cachedTid;

    void cachedTid();

    inline int tid()
    {
        if(__builtin_expect(t_cachedTid == 0, 0))
        {
            cachedTid();
        }
        return t_cachedTid;
    }
} // namespace CurrentThread
